const router = require('koa-router')()
const multer = require('koa-multer')

router.prefix('/upload')

// 配置    
const storage = multer.diskStorage({
  // 文件保存路径
  destination: function (req, file, cb) {
    cb(null, 'public/uploads/')  // 注意路径必须存在
  },
  // 修改文件名称
  filename: function (req, file, cb) {
    const fileFormat = (file.originalname).split(".")
    cb(null, Date.now() + "." + fileFormat[fileFormat.length - 1])
  }
})

// 加载配置
const upload = multer({ storage: storage })

// 上传图片接口
router.post('/img', upload.single('file'), async (ctx, next) => {
  try {
    if (!ctx.req.file) {
      ctx.body = {
        code: -1,
        message: '请选择要上传的图片'
      }
      return
    }

    // 检查环境变量是否存在
    if (!process.env.DOMAIN) {
      console.error('环境变量 DOMAIN 未定义')
      ctx.body = {
        code: -1,
        message: '服务器配置错误'
      }
      return
    }

    ctx.body = {
      code: 20000,
      data: {
        url: `${process.env.DOMAIN}/uploads/${ctx.req.file.filename}`,
        filename: ctx.req.file.filename
      },
      message: '上传成功'
    }
  } catch (error) {
    console.error('上传错误：', error)
    ctx.body = {
      code: -1,
      message: '上传失败',
      error: error.message
    }
  }
})

module.exports = router
